/*------------------------------
 *hfile:      Vge_SLineObj.h             
 *Created Date:  4/23/2001             
 *Developer:  Stephen.Yao              
 *Studio:	 Zhuq Studio			  
 *------------------------------
 */
#ifndef CCGISSLINEOBJ__H__INTERFACE
#define CCGISSLINEOBJ__H__INTERFACE
#include "Vge_MStruct.h"

namespace ccgis{

class AFX_EXT_CLASS CcgisSLineObj  
{
public:
	STATUS sloQuerySmCode( char sloTabName[MAX_NAME],char code[MAX_CODE],CcgisIds &ids,BOOL bUpdate = TRUE,BOOL bWait = FALSE );
	STATUS sloPolygonQuery( char sloTabName[MAX_NAME], _ccgisPoint2D *polyPts, int len, CStringArray &codes, CcgisIds &lids, int queryType = 1 );//1: QT_CONTAIN 2: QT_INTERSECT
	STATUS sloLineQuery( char sloTabName[MAX_NAME], _ccgisPoint2D *linePts, int len, CStringArray &codes, CcgisIds &lids );
	STATUS sloPtQuery( char sloTabName[MAX_NAME], float ptx, float pty, float ptz, float torlerance, CStringArray &codes, CcgisIds &lids );
	STATUS sloPolygonQuery( char sloTabName[MAX_NAME], _ccgisPoint2D *polyPts, int len, CcgisIds &lids, int queryType = 1 );//1: QT_CONTAIN 2: QT_INTERSECT
	STATUS sloLineQuery( char sloTabName[MAX_NAME], _ccgisPoint2D *linePts, int len, CcgisIds &lids );
	STATUS sloPtQuery( char sloTabName[MAX_NAME], float ptx, float pty, float ptz, float torlerance, CcgisIds &lids );
	STATUS sloGetAllCode( char sloTabName[MAX_NAME],CStringArray &allcodes,int &len );
	STATUS sloGetAllCode( CStringArray &allcodes,int &len );
	STATUS sloSetNewSLId( char sloTabName[MAX_NAME],OIDTYPE oldLid,OIDTYPE newLid );
	STATUS sloSetVisFlag( char sloTabName[MAX_NAME],OIDTYPE lid,char visFlag );
	STATUS sloGetVisFlag( char sloTabName[MAX_NAME],OIDTYPE lid,char &visFlag,BOOL bUpdate = TRUE,BOOL bWait = FALSE );
	STATUS sloSetFeaName( char sloTabName[MAX_NAME],int lid,char feaname[MAX_NAME]);
	STATUS sloGetFeaName( char sloTabName[MAX_NAME],int lid,char feaname[MAX_NAME]);
	STATUS sloSetPid( char sloTabName[MAX_NAME],int lid,int pid);
	STATUS sloGetPid( char sloTabName[MAX_NAME],int lid,int &pid);
	STATUS sloGetLineData( char sloTabName[MAX_NAME],OIDTYPE lid,_ccgisPoint3D *&lineData,int &ptNum,BOOL bUpdate = TRUE,BOOL bWait = FALSE );
	STATUS sloRectQuery1( char sloTabName[MAX_NAME],float minx,float miny,float maxx,float maxy,CcgisSloData *&SLines,int &len,BOOL bUpdate = TRUE,BOOL bWait = FALSE );
	STATUS sloRectQuery2( char sloTabName[MAX_NAME],float minx,float miny,float maxx,float maxy,CcgisSloData *&SLines,int &len,BOOL bUpdate = TRUE,BOOL bWait = FALSE );
	STATUS sloRectQuery3( char sloTabName[MAX_NAME],float minx,float miny,float maxx,float maxy,CcgisSloData *&SLines,int &len,BOOL bUpdate = FALSE,BOOL bWait = FALSE );
	STATUS sloRectQueryIds1( char sloTabName[MAX_NAME],float minx,float miny,float maxx,float maxy,CcgisIds &ids,BOOL bUpdate = TRUE,BOOL bWait = FALSE );
	STATUS sloRectQueryIds2( char sloTabName[MAX_NAME],float minx,float miny,float maxx,float maxy,CcgisIds &ids,BOOL bUpdate = TRUE,BOOL bWait = FALSE );
	STATUS sloRectQueryIds3( char sloTabName[MAX_NAME],float minx,float miny,float maxx,float maxy,CcgisIds &ids,BOOL bUpdate = TRUE,BOOL bWait = FALSE );
	STATUS sloRectQueryIds1( char sloTabName[MAX_NAME],float minx,float miny,float maxx,float maxy,CStringArray &codes,CcgisIds &ids,BOOL bUpdate = TRUE,BOOL bWait = FALSE );
	STATUS sloRectQueryIds2( char sloTabName[MAX_NAME],float minx,float miny,float maxx,float maxy,CStringArray &codes,CcgisIds &ids,BOOL bUpdate = TRUE,BOOL bWait = FALSE );
	STATUS sloRectQueryIds3( char sloTabName[MAX_NAME],float minx,float miny,float maxx,float maxy,CStringArray &codes,CcgisIds &ids,BOOL bUpdate = TRUE,BOOL bWait = FALSE );
	STATUS sloRectCodeQuery1( char sloTabName[MAX_NAME],float minx,float miny,float maxx,float maxy,CStringArray &codes,CcgisSloData *&SLines,int &len,BOOL bUpdate = TRUE,BOOL bWait = FALSE );
	STATUS sloRectCodeQuery2( char sloTabName[MAX_NAME],float minx,float miny,float maxx,float maxy,CStringArray &codes,CcgisSloData *&SLines,int &len,BOOL bUpdate = TRUE,BOOL bWait = FALSE );
	STATUS sloRectCodeQuery3( char sloTabName[MAX_NAME],float minx,float miny,float maxx,float maxy,CStringArray &codes,CcgisSloData *&SLines,int &len,BOOL bUpdate = TRUE,BOOL bWait = FALSE );
	STATUS sloDeleteIndex(char sloTabName[MAX_NAME]);
	STATUS sloCreateIndex( char sloTabName[MAX_NAME],int level );
	STATUS sloDelMetaData(char sloTabName[MAX_NAME]);
	STATUS sloInsertMetaData(char sloTabName[MAX_NAME],float minx,float miny,float maxx,float maxy,float tolerance);
	STATUS sloSetCode( char sloTabName[MAX_NAME],OIDTYPE lid,char newCode[MAX_CODE] );
	STATUS sloGetCode( char sloTabName[MAX_NAME],OIDTYPE lid,char code[MAX_CODE],BOOL bUpdate = TRUE,BOOL bWait = FALSE );
	STATUS sloGetMinMax( char sloTabName[MAX_NAME],float &minx,float &miny,float &maxx,float &maxy );
	STATUS sloGet2DBox(char sloTabName[MAX_NAME], OIDTYPE lid, CcgisBOX2D &box, BOOL bUpdate = FALSE, BOOL bWait = FALSE);
	STATUS sloUpdateALine( char sloTabName[MAX_NAME],CcgisSloData sloData );
	STATUS sloSetInfId( char sloTabName[MAX_NAME],OIDTYPE lid,OIDTYPE infId );
	STATUS sloGetInfId( char sloTabName[MAX_NAME],OIDTYPE lid,OIDTYPE &infId,BOOL bUpdate = TRUE,BOOL bWait = FALSE );
	STATUS sloSetColor( char sloTabName[MAX_NAME],OIDTYPE lid,float colorR,float colorG,float colorB );
	STATUS sloGetColor( char sloTabName[MAX_NAME],OIDTYPE lid,float &colorR,float &colorG,float &colorB,BOOL bUpdate = TRUE,BOOL bWait = FALSE );
	STATUS sloDelARec( char sloTabName[MAX_NAME],OIDTYPE lid );
	STATUS sloInsertASLine( char sloTabName[MAX_NAME],CcgisSloData sloData );
	STATUS sloClrTab( char sloTabName[MAX_NAME] );
	STATUS sloGetALine(char sloTabName[], OIDTYPE lid, CcgisSloData &sloData, BOOL bUpdate = TRUE, BOOL bWait = FALSE);
};

}

#endif